<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/proyecto/clases/autoload.inc.php';
if(Zen::IniciarSesion()){
 $debug=0;
 
 $db = Zen::Db($debug);
 
 $tabla = 'honorarios_medicos';
 $record = array();

 $fecha_actual= date('Y-m-d');
 $medico = $_POST['medico'];
 $periodo = $_POST['periodo'];
 $usu_rut=$_SESSION['rut_usuario'];
 
 $sql = "select cast('".$periodo."' as date) + interval '1 months' as mes_siguiente";
 $rs = Zen::Consulta( $sql,$debug ); 
 
 $mes_siguiente=$rs->fields["mes_siguiente"];
  
 $sql = "select cast('".$mes_siguiente."'as date)-1 as ultimo_dia";
 $rs = Zen::Consulta( $sql,$debug ); 
  
 $periodo_inicio = $periodo; 
 $periodo_fin = $rs->fields["ultimo_dia"];
 
 $sql = "select sum((exot_valor_honorario*(com_porcentaje/100))) as total_honorario 
        from examenes_ot as exot 
        join ordenes_trabajo as ot on exot.ot_id=ot.ot_id 
        join medicos_informantes as mei on mei.mei_rut = ot.mei_rut 
        join tipos_informante as tii on tii.tii_id = mei.tii_id 
        join examenes as exa on exa.ex_codigo = exot.ex_codigo
        join comisiones_honorario as com on exa.te_id=com.te_id and mei.tii_id=com.tii_id
        where exot.honm_id is null 
        and ot.ot_fecha_termino_ot >='".$periodo_inicio."'
        and ot.ot_fecha_termino_ot <='".$periodo_fin."'
        and ot.mei_rut = '".$medico."'";

 $rs = Zen::Consulta( $sql,$debug ); 
 
 $NumRegistros=Zen::NumeroRegistros($rs);
 
 if($NumRegistros>0)
 {
 
 
 $total=$rs->fields["total_honorario"];
 
 //DATOS DE LOS HONORARIOS
 $record["usu_rut"] = $usu_rut;
 $record["mei_rut"] = $medico;
 $record["honm_periodo"] = $periodo;
 $record["honm_valor"] = $total;
 $record["honm_fecha_ing"] = $fecha_actual;
 
 
 //INICIAR LA TRANSACCION DE DATOS SEGURA
 $db->StartTrans(); 

 //SE INSERTA UN NUEVO REGISTRO DE HONORARIO
 $db->AutoExecute($tabla, $record, 'INSERT');
 
 //ID DEL HONORARIO GENERADO
 $hon_id = $db->GenId("honorarios_medicos_honm_id_seq") - 1;
 
 //SE ACTUALIZAN LOS EXAMENES OT CON LA ID DEL PAGO DE HONORARIO
 $sql = "select exot.exot_id
        from examenes_ot as exot 
        join ordenes_trabajo as ot on exot.ot_id=ot.ot_id 
        join medicos_informantes as mei on mei.mei_rut = ot.mei_rut 
        join tipos_informante as tii on tii.tii_id = mei.tii_id 
        join examenes as exa on exa.ex_codigo = exot.ex_codigo
        join comisiones_honorario as com on exa.te_id=com.te_id and mei.tii_id=com.tii_id
        where exot.honm_id is null 
        and ot.ot_fecha_termino_ot >='".$periodo_inicio."'
        and ot.ot_fecha_termino_ot <='".$periodo_fin."'
        and ot.mei_rut = '".$medico."'";

 $rs = Zen::Consulta( $sql,$debug ); 
 
   
 foreach($rs as $k => $record_sql)
 {
                
                $tabla_exot = 'examenes_ot';
                $record_exot = array();
                                
                $exot_id = $record_sql['exot_id'];
                
                             
                //FK A ACTUALIZAR
                $record_exot['honm_id'] = $hon_id;
                
               // $insertSQL = Zen::AutoSql($debug, $tabla_pag, $record_pag, 'UPDATE', "pag_id=$pag_id", false, true ) ;
                $db->AutoExecute($tabla_exot, $record_exot, 'UPDATE', "exot_id=$exot_id") ;
        
 }   

 

 //  FIN DATOS EXAMENES
 $acusete = $db->HasFailedTrans();
 if($acusete) //si hay errores sql deshacer todos los cambios!
 {
    $db->FailTrans();//rollback!
 }
 $db->CompleteTrans(); //TERMINAR LA TRANSACCION DE DATOS SEGURA


 $json = new Services_JSON() ;

 //if ( $insertSQL && Zen::FilasAfectadas() === 1 )
 if (!$acusete)
 {
 	$datos = array( 'error' => 'ok' ) ;
 	$datos['filas'] = 'Numero de filas afectadas: ' . Zen::FilasAfectadas() ;
 	$salida = $json->encode( $datos ) ;
 	echo $salida ;
 }
 else
 {
 	$e = ADODB_Pear_Error() ;
    $datos['filas'] = Zen::FilasAfectadas() ;
 	$datos["detalles"] = $e->message;
    $datos["error"] = 'mal' ;
 	$salida = $json->encode( $datos ) ;
    echo $salida ;
 }
 }
 else
 {
    $json = new Services_JSON() ;
    $datos['filas'] = Zen::FilasAfectadas() ;
 	$datos["detalles"] = 'El informante seleccionado no registra honorarios';
    $datos["error"] = 'mal' ;
 	$salida = $json->encode( $datos ) ;
    echo $salida ;
 }
 }
else
{
 Zen::LogoutModulo();
}
 

?>